
//导入Java类型 , 常用的内置类型可以不用导入
import com.xxx.ClassName
import com.xxx.ClassName1

//导入任务, 起一个别名名这样后面操作任务的时候比较方便
task com.xxx.ClassTaskName as test1
task com.xxx.ClassTaskName as test2


//定义变量
String a="123"  //定义字符串

Integer b=123  //定义整数

Float c=123.0  //定义浮点数

Boolean c1=true  //定义布尔值
Boolean d=false  //定义布尔值

ClassName f
ClassName1 f1

//调用任务
run test1( a,b )
//调用任务绑定e
run test1( a,b ) -> e:ClassName
//绑定已经存在的变量
run test1( a ,b )  -> f:String

//多任务并发, 任务1和任务2并发执行
run test1( a ,b ) ,test1( a ,b )
//绑定一个自定义变量
run test1( a ,b ) ,test1( a ,b )  -> g:CopyOnWriteArrayList


echo "测试打印: ","____","123:{c}",\t,c,\t,123,\n

//判断
if c &&  d  || c {
    echo "c & d"
}

if c &&  d  || c {
    echo "c & d"
}else{
 echo "c & d 1"
}

if c &&  d  || c {
    echo "c & d"
}else if c &&  d  || c {
    echo "c & d 1"
}else{
    echo "c & d 2"
}

if c &&  d  || c {
    echo "c & d 1"
    if c &&  d  || c {
        echo "c & d 2"
    }else {
         echo "c & d 22"
     }
} else if c &&  d  || c {
    echo "c & d 3"
}else if c &&  d  || c {
     echo "c & d 4"
 }else {
    echo "c & d 5"
}



switch a {
  case "123" , "456"
    echo "123"
        if c &&  d  || c {
            echo "c & d 2"
        }else {
             echo "c & d 22"
        }
  case "712"
    echo "712"
  default
    echo "default"
}


//创建一个对象直接new, 会自动推导
Map  h = new
for i in 1..10 {
  run test1( a ,b ) -> v:String
  h.put("test"+i,v)
}

// 导出只支持1个变量, 会将这个结果传递给下一个任务,  并且export导出必须放在文件的最后
// 如果没有导出那么就不传递给下一个任务内容, 下一个任务就不会执行
export e